//对象数组方法
var user = [
    {
        id: 1,
        name: "李四"
    },
    {
        id: 2,
        name: "张三"
    },
    {
        id: 3,
        name: "李五"
    }
]

// 1. form 方法  
var userId = Array.from(user,(item)=> item.id);
console.log(userId)

//2. map 方法  
var userName = user.map((item) =>item.name)
console.log(userName); //[ '李四', '张三', '李五' ]  
//3.forEach 方法  
var userName1 = [];
user.forEach(item => {
    userName1.push(item.name)
})
console.log(userName1) //[ '李四', '张三', '李五' ]  

// 4. map方法抽取公共方法   
function getAttrs(array,attr) {
    var arr = array.map(item => item[attr])
    return arr;
}
console.log(getAttrs(user,'id'))
console.log(getAttrs(user,'name'))  

// 二. 删除对象数组中的某一属性    
for (const key in user) {
    delete user[key].id
    console.log(user) //[ { name: '李四' }, { name: '张三' }, { name: '李五' } ]
}  

// Object.isPrototypeOf()
// 此方法是用来检查一个对象是否存在另一个对象的原型链中。   
function Obj(){} //创建一个构造函数   
let b = new Obj(); //new 一个新对象赋值给b   
console.log(Obj.prototype.isPrototypeOf(b));  //true    

// forEach方法主要由三个参数，分别是数组内容、数组索引、整个数组   
var arr = [1,2,3,4];
var newarr = arr.forEach((a,b,c) => {
    console.log(a)  //内容
    console.log(b)  //索引
    console.log(c)  //整个数组  
})      
